/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package mx.edu.itschapala.sistemas.septimo.Control;

import java.util.ArrayList;
import java.util.List;
import mx.edu.itschapala.sistemas.septimo.Modelo.Producto;
import mx.edu.itschapala.sistemas.septimo.Vista.enumeracion.TipoBusqueda;

/**
 *
 * @author Sony
 */
public class ProductoLnLista implements ProductoLnLocal{
    

   private List<Producto> lista = new ArrayList<Producto>();

   
    public void registrar(Producto producto) {
       lista.add(producto); 
    }

   
    public void modificar(Producto producto) {
     Producto tmp=buscarPorCodigo(producto.getCodigo());
         if(tmp!=null){
             lista.remove(tmp);
             lista.add(producto);
         }  
    }

    
    public void eliminar(Producto producto) {
       Producto tmp=buscarPorCodigo(producto.getCodigo());
        if(tmp!=null){
            lista.remove(tmp);
        }
    }

     public Producto buscarPorCodigo(int codigo) {
      Producto tmp=null;
         for(Producto p :lista){
             if(p.getCodigo()==codigo){
                 tmp=p;
                 
             }
         }
         return tmp;
    }

    @Override
    public List<Producto> getTodos() {
         return lista;
    }

    
    
    @Override
    public List<Producto> getPornombre(String Nombre, TipoBusqueda criterio) {
      List<Producto> tmp=new ArrayList<Producto>();
        switch(criterio){
            case INICIA:
                for(Producto p: lista){
                    if(p.getNombre().startsWith(Nombre)){
                        tmp.add(p);
                    }
                }
            break;
            case CONTIENE:
                for(Producto p: lista){
                    if(p.getNombre().contains(Nombre)){
                    tmp.add(p);
                }
            }
        break;
    }
    return tmp; 
      }

   }

   


